/////////////////////////////////////////////////////////////////////////////
// Name:        MainFrame.h
// Purpose:     
// Author:      yospaly
// Modified by: 
// Created:     11/12/2008 22:04:20
// RCS-ID:      
// Copyright:   Copyright (C) 2008, yospaly
// Licence:     
/////////////////////////////////////////////////////////////////////////////

#ifndef _MAINFRAME_H_
#define _MAINFRAME_H_


/*!
 * Includes
 */

////@begin includes
#include "wx/frame.h"
#include "wx/toolbar.h"
#include "wx/srchctrl.h"
#include "wx/splitter.h"
#include "wx/aui/auibook.h"
#include "wx/statusbr.h"
////@end includes
#include "inibuilder.h"

/*!
 * Forward declarations
 */

////@begin forward declarations
class CategoryListBox;
class PackagesListCtrl;
class wxHtmlWindow;
class wxStatusBar;
////@end forward declarations
class DownloadIniDialog;

/*!
 * Control identifiers
 */

////@begin control identifiers
#define ID_MAINFRAME 10000
#define ID_TOOLBAR 10001
#define ID_EXIT_TOOL 10054
#define ID_RELOAD_TOOL 10002
#define ID_MARK_ALL_TOOL 10003
#define ID_UNDO_TOOL 10038
#define ID_APPLY_TOOL 10004
#define ID_SEARCHCTRL 10053
#define ID_SETTINGS_TOOL 10007
#define ID_ABOUT_TOOL 10008
#define ID_INSTALL_TOOL 10006
#define ID_UNINSTALL_TOOL 10016
#define ID_SPLITTERWINDOW 10009
#define ID_AUINOTEBOOK 10015
#define ID_SPLITTERWINDOW1 10012
#define ID_STATUSBAR 10010
#define SYMBOL_MAINFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_BOX
#define SYMBOL_MAINFRAME_TITLE _("Citrus - Cygwin Package Manager")
#define SYMBOL_MAINFRAME_IDNAME ID_MAINFRAME
#define SYMBOL_MAINFRAME_SIZE wxSize(780, 550)
#define SYMBOL_MAINFRAME_POSITION wxDefaultPosition
////@end control identifiers


/*!
 * MainFrame class declaration
 */

class MainFrame: public wxFrame
{    
    DECLARE_CLASS( MainFrame )
    DECLARE_EVENT_TABLE()

public:
    /// Constructors
    MainFrame();
    MainFrame( wxWindow* parent, wxWindowID id = SYMBOL_MAINFRAME_IDNAME, const wxString& caption = SYMBOL_MAINFRAME_TITLE, const wxPoint& pos = SYMBOL_MAINFRAME_POSITION, const wxSize& size = SYMBOL_MAINFRAME_SIZE, long style = SYMBOL_MAINFRAME_STYLE );

    bool Create( wxWindow* parent, wxWindowID id = SYMBOL_MAINFRAME_IDNAME, const wxString& caption = SYMBOL_MAINFRAME_TITLE, const wxPoint& pos = SYMBOL_MAINFRAME_POSITION, const wxSize& size = SYMBOL_MAINFRAME_SIZE, long style = SYMBOL_MAINFRAME_STYLE );

    /// Destructor
    ~MainFrame();

    /// Initialises member variables
    void Init();

    /// Creates the controls and sizers
    void CreateControls();

////@begin MainFrame event handler declarations

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_RELOAD_TOOL
    void OnRELOADTOOLClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_UNDO_TOOL
    void OnUNDOTOOLClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_APPLY_TOOL
    void OnAPPLYTOOLClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_SETTINGS_TOOL
    void OnSETTINGSTOOLClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_ABOUT_TOOL
    void OnABOUTTOOLClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_INSTALL_TOOL
    void OnINSTALLTOOLClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_MENU_SELECTED event handler for ID_UNINSTALL_TOOL
    void OnUNINSTALLTOOLClick( wxCommandEvent& event );

////@end MainFrame event handler declarations

////@begin MainFrame member function declarations

    /// Retrieves bitmap resources
    wxBitmap GetBitmapResource( const wxString& name );

    /// Retrieves icon resources
    wxIcon GetIconResource( const wxString& name );
////@end MainFrame member function declarations

    /// Should we show tooltips?
    static bool ShowToolTips();

////@begin MainFrame member variables
    wxToolBar* p_toolbar;
    CategoryListBox* p_category_listbox;
    PackagesListCtrl* p_packages_listctrl;
    wxStatusBar* p_statusbar;
////@end MainFrame member variables
};


#endif
    // _MAINFRAME_H_
